﻿Imports Fgv.Framework.UI
Imports LS.Leilao.Dominio

Partial Class UserControls_PecasDoUsuario
    Inherits BaseUserControl

#Region "Atributos da pagina"

    Public Enum Visoes
        Lista
        Cadastro
    End Enum

    Public Property Proprietario() As Usuario
        Get
            Return TryCast(ViewState("_proprietario"), Usuario)
        End Get
        Set(ByVal value As Usuario)
            ViewState("_proprietario") = value
            Me.DataBindPecas()
        End Set
    End Property


    Public Property VisaoAtual() As Visoes
        Get
            Return mlt1.ActiveViewIndex
        End Get
        Set(ByVal value As Visoes)
            mlt1.ActiveViewIndex = value
        End Set
    End Property


#End Region

#Region "Delegates"

    Protected Delegate Sub PageDelegate()

#End Region

#Region "Classes Injetadas"

#End Region

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then
            
        End If

    End Sub

#Region "Funcoes de Databind"

    Protected Sub DataBindPecas()

        Me.DataBindRpt()
        Me.DataBindCabecalho()
        Me.DataBindPalavrasChave()
        Me.DataBindCategorias()
        Me.DataBindTiposDeMaterial()

    End Sub

    Protected Sub DataBindRpt()

        Dim _pecas As IList(Of Peca)

        _pecas = Me.GetPecas()

        rpt.DataSource = _pecas
        rpt.DataBind()

    End Sub



    Protected Sub DataBindCabecalho()

        If Me.Proprietario IsNot Nothing Then
            lbNome.Text = Me.Proprietario.Pessoa.Nome
            lbLogin.Text = Me.Proprietario.Login
        Else
            lbNome.Text = String.Empty
            lbLogin.Text = String.Empty
        End If

    End Sub

    Protected Sub DataBindPalavrasChave()

        Dim _categorias As IList(Of CategoriaPeca)

        _categorias = Me.GetCategorias()

        chkCategorias.DataSource = _categorias
        chkCategorias.DataTextField = "Descricao"
        chkCategorias.DataValueField = "Id"
        chkCategorias.DataBind()

    End Sub

    Protected Sub DataBindTiposDeMaterial()

        Dim _materiais As IList(Of TipoMaterial)

        _materiais = Me.GetTiposDeMateriais()

        chkMateriais.DataSource = _materiais
        chkMateriais.DataTextField = "Descricao"
        chkMateriais.DataValueField = "Id"
        chkMateriais.DataBind()

    End Sub

    Protected Sub DataBindCategorias()

        Dim _palavras As IList(Of PalavraChave)

        _palavras = Me.GetPalavrasChave()

        chkPalavrasChave.DataSource = _palavras
        chkPalavrasChave.DataTextField = "Palavra"
        chkPalavrasChave.DataValueField = "Id"
        chkPalavrasChave.DataBind()

    End Sub

#End Region

#Region "Operacoes do Usuario"

    Protected Sub BtSlv_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtSlv.Click
        Throw New NotImplementedException
    End Sub

    Protected Sub btNv_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btNv.Click
        Me.VisaoAtual = Visoes.Cadastro
    End Sub

    Protected Sub BtVlt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtVlt.Click
        Me.VisaoAtual = Visoes.Lista
    End Sub

    Protected Sub btAnt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btAnt.Click
        Throw New NotImplementedException
    End Sub

    Protected Sub btNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btNext.Click
        Throw New NotImplementedException
    End Sub

#End Region

#Region "Classes Auxiliares"

#End Region


    Protected Function GetCategorias() As IList(Of CategoriaPeca)

        Dim _categorias As IList(Of CategoriaPeca)

        _categorias = New List(Of CategoriaPeca)

        _categorias.Add(New CategoriaPeca With {.Codigo = "XPTO", .Descricao = "Categoria de teste"})
        _categorias.Add(New CategoriaPeca With {.Codigo = "SELOS", .Descricao = "Selos"})
        _categorias.Add(New CategoriaPeca With {.Codigo = "MOVEIS", .Descricao = "Móveis"})
        _categorias.Add(New CategoriaPeca With {.Codigo = "MOEDA", .Descricao = "Moedas"})

        Return _categorias

    End Function

    Protected Function GetPalavrasChave() As IList(Of PalavraChave)

        Dim _palavras As IList(Of PalavraChave)

        _palavras = New List(Of PalavraChave)

        _palavras.Add(New PalavraChave With {.Palavra = "selos", .Descricao = "Selos"})
        _palavras.Add(New PalavraChave With {.Palavra = "móveis", .Descricao = "Móveis"})
        _palavras.Add(New PalavraChave With {.Palavra = "moeda", .Descricao = "Moedas"})
        _palavras.Add(New PalavraChave With {.Palavra = "fotografia antiga", .Descricao = "Fotografias antigas"})

        Return _palavras

    End Function

    Protected Function GetTiposDeMateriais() As IList(Of TipoMaterial)

        Dim _materiais As IList(Of TipoMaterial)

        _materiais = New List(Of TipoMaterial)

        _materiais.Add(New TipoMaterial With {.Codigo = "PAPIRO", .Descricao = "Papiro original"})
        _materiais.Add(New TipoMaterial With {.Codigo = "OURO", .Descricao = "Liga de ouro"})
        _materiais.Add(New TipoMaterial With {.Codigo = "PRATA", .Descricao = "Prata"})

        Return _materiais

    End Function

    Protected Function GetPecas() As IList(Of Peca)

        Dim _usuario01, _usuario02, _usuario03, _usuario04, _usuario05 As Usuario
        Dim _pessoa01, _pessoa02, _pessoa03, _pessoa04, _pessoa05 As Pessoa
        Dim _peca01, _peca02, _peca03, _peca04, _peca05, _peca06, _peca07, _peca08 As Peca
        Dim _imagem01, _imagem02 As ImagemPeca
        Dim _contato01, _contato02, _contato03 As Contato

        _pessoa01 = New Pessoa With {.Nome = "Leonardo Santana", .Cidade = "Rio de Janeiro", .Uf = "RJ", .DocumentoIdentificacao = "123", .Email = "email@gmail.com"}
        _pessoa02 = New Pessoa With {.Nome = "Ana Tereza", .Cidade = "Rio de Janeiro", .Uf = "RJ", .DocumentoIdentificacao = "245", .Email = "ana@gmail.com"}
        _pessoa03 = New Pessoa With {.Nome = "Marco", .Cidade = "Rio de Janeiro", .Uf = "RJ", .DocumentoIdentificacao = "678", .Email = "marco@gmail.com"}
        _pessoa04 = New Pessoa With {.Nome = "Antonio", .Cidade = "Rio de Janeiro", .Uf = "RJ", .DocumentoIdentificacao = "908", .Email = "antonio@gmail.com"}
        _pessoa05 = New Pessoa With {.Nome = "Carlos", .Cidade = "São Paulo", .Uf = "SP", .DocumentoIdentificacao = "459", .Email = "carlos@gmail.com"}


        _usuario01 = New Usuario With {.Login = "LSANTANA", .Pessoa = _pessoa01, .Habilitado = False}

        _contato01 = New Telefone With {.DDD = "21", .Numero = "2538-9967", .Pessoa = _pessoa01, .Usuario = _usuario01}
        _contato02 = New Telefone With {.DDD = "21", .Numero = "6789-9908", .Pessoa = _pessoa02, .Usuario = _usuario01}
        _contato03 = New Email With {.Endereco = "teste@test.com", .Pessoa = _pessoa01, .Usuario = _usuario01}

        _usuario02 = New Usuario With {.Login = "ANA", .Pessoa = _pessoa02, .Habilitado = True}
        _usuario03 = New Usuario With {.Login = "MARCO", .Pessoa = _pessoa03, .Habilitado = True}
        _usuario04 = New Usuario With {.Login = "ANTONIO", .Pessoa = _pessoa04, .Habilitado = True}
        _usuario05 = New Usuario With {.Login = "CARLOS", .Pessoa = _pessoa05, .Habilitado = True}

        _peca01 = New Peca With {.Descricao = "castiçal de ouro", .Proprietario = _usuario01}
        _peca02 = New Peca With {.Descricao = "Moeda 1800", .Proprietario = _usuario01}
        _peca03 = New Peca With {.Descricao = "Selo Chinês", .Proprietario = _usuario02}
        _peca04 = New Peca With {.Descricao = "Moeda 1500", .Proprietario = _usuario02}
        _peca05 = New Peca With {.Descricao = "Candelabro folheado", .Proprietario = _usuario02}
        _peca06 = New Peca With {.Descricao = "Livro 1600", .Proprietario = _usuario02}
        _peca07 = New Peca With {.Descricao = "Moeda prata", .Proprietario = _usuario02}
        _peca08 = New Peca With {.Descricao = "500 fotografias Rio antigo", .Proprietario = _usuario02}

        _imagem01 = New ImagemPeca With {.Extensao = "jpg", .Peca = _peca01, .Tamanho = 100, .Descricao = "Peça de teste"}
        _imagem02 = New ImagemPeca With {.Extensao = "jpg", .Peca = _peca01, .Tamanho = 3500, .Descricao = "Peça de teste 02"}

        Dim _pecas As IList(Of Peca)
        _pecas = New List(Of Peca)
        _pecas.Add(_peca01)
        _pecas.Add(_peca02)
        _pecas.Add(_peca03)
        _pecas.Add(_peca04)
        _pecas.Add(_peca05)
        _pecas.Add(_peca06)

        Return _pecas

    End Function

    Protected Sub rpt_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpt.ItemDataBound

        If e.Item.ItemType = ListItemType.Item Then
            Dim _dataItem As Peca = CType(e.Item.DataItem, Peca)
            Dim _p As UserControls_Base_Peca = CType(e.Item.FindControl("p"), UserControls_Base_Peca)

            _p.Peca = _dataItem

        End If

    End Sub
End Class
